"""
数据处理子系统，主要完成的工作
1. 从外部数据源获取数据，并保存到数据库中
2. 为交易系统提供数据接口
"""

from pymongo import MongoClient, ASCENDING, DESCENDING, UpdateOne
import tushare as ts
from pev2.util.DataBase import DB_CONN

class DataModule:

    def __init__(self):
        self.db = DB_CONN

    """
    获取指定股票代码在固定周期的数据
    :param code: 股票代码
    :param index: 是否是指数
    :param autype: 复权类型，None - 不复权，qfq - 前复权, hfq - 后复权
    :param period: K线周期，D - 日线(默认值)，W - 周线， M - 月线，M1 - 1分钟，M5 - 5分钟
    :param startDate: 数据的开始日期
    :param endDate: 数据的结束日期
    """
    def getKData(self, code, index=None, autype=None, ktype='D', startDate=None, endDate=None):
        print("子系统：数据处理， 操作：获取K线数据，状态：开始，股票：%s, 级别: %s, 开始日期: %s, 结束日期: %s" %
              (code, ktype, startDate, endDate), flush=True)
        dailiesDF = ts.get_k_data(code, index=index, autype=autype, ktype=ktype, start=startDate, end=endDate)
        print("子系统：数据处理，操作：获取K线数据，状态：结束，股票：%s, 级别：%s, 开始日期：%s，结束日期： %s" %
              (code, ktype, startDate, endDate), flush=True)
        return dailiesDF


    def getBasiceData(self, code, startDate=None, endDate=None):
         pass